using System;
using BIUtilities.Publish.PpsMonitoringWebService;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Xml.Serialization;

namespace BIUtilities.Publish.PpsDataObjects
{
    [Serializable()]
    [System.Xml.Serialization.XmlRoot(
        Namespace = "http://www.microsoft.com/performancepoint/scorecards", 
        ElementName = "ScorecardModel")]
    [XmlInclude(typeof(BpmPropertyBool))]
    [XmlInclude(typeof(BpmPropertyDate))]
    [XmlInclude(typeof(BpmPropertyDateRange))]
    [XmlInclude(typeof(BpmPropertyDecimal))]
    [XmlInclude(typeof(BpmPropertyHyperlink))]
    [XmlInclude(typeof(BpmPropertyHyperlink2))]
    [XmlInclude(typeof(BpmPropertyInteger))]
    [XmlInclude(typeof(BpmPropertyLinkBase))]
    [XmlInclude(typeof(BpmPropertyList))]
    [XmlInclude(typeof(BpmPropertyListItem))]
    [XmlInclude(typeof(BpmPropertyLongText))]
    [XmlInclude(typeof(BpmPropertyMoney))]
    [XmlInclude(typeof(BpmPropertyPercent))]
    [XmlInclude(typeof(BpmPropertyText))]
    [XmlInclude(typeof(BpmPropertyUser))]
    public class ScorecardModel
    {
        PpsMonitoringWebService.Dashboard[] _dashboards;
        PpsMonitoringWebService.Scorecard[] _scorecards;
        PpsMonitoringWebService.Kpi[] _kpis;
        PpsMonitoringWebService.ReportView[] _reportViews;
        PpsMonitoringWebService.DataSource[] _dataSources;
        PpsMonitoringWebService.Indicator[] _indicators;

        public PpsMonitoringWebService.Dashboard[] DashboardsInWorkspace
        {
            get { return _dashboards; }
            set { _dashboards = value; }
        }

        public PpsMonitoringWebService.Scorecard[] ScorecardsInWorkspace
        {
            get { return _scorecards; }
            set { _scorecards = value; }
        }

        public PpsMonitoringWebService.Kpi[] KpisInWorkspace
        {
            get { return _kpis; }
            set { _kpis = value; }
        }

        public PpsMonitoringWebService.ReportView[] ReportViewsInWorkspace
        {
            get { return _reportViews; }
            set { _reportViews = value; }
        }

        public PpsMonitoringWebService.DataSource[] DataSourcesInWorkspace
        {
            get { return _dataSources; }
            set { _dataSources = value; }
        }

        public PpsMonitoringWebService.Indicator[] IndicatorsInWorkspace
        {
            get { return _indicators; }
            set { _indicators = value; }
        }


    }
}
